A CD-ROM containing a computer program listing appendix has been submitted and is herein incorporated by reference. The CD-ROM contains a single ASCII text file named xe2x80x9c020109 1728(S), created Jan. 9, 2002, 510 KB in size.
1. Field of the Invention
This invention relates to real-time computer thermal management and power conservation, and more particularly to an apparatus and method for decreasing and increasing central processing unit (CPU) clock time based on temperature and real-time activity levels within the CPU of a portable computer.
2. Description of the Related Art
During the development stages of personal computers, the transportable or portable computer has become very popular. Such portable computer uses a large power supply and really represents a small desktop personal computer. Portable computers are smaller and lighter than a desktop personal computer and allow a user to employ the same software that can be used on a desktop computer.
The first generation xe2x80x9cportablexe2x80x9d computers only operated from an A/C wall power. As personal computer development continued, battery-powered computers were designed. Furthermore, real portability became possible with the development of new display technology, better disk storage, and lighter components. Unfortunately, the software developed was designed to run on desk top computers without regard to battery-powered portable computers that only had limited amounts of power available for short periods of time. No special considerations were made by the software, operating system (MS-DOS), Basic Input/Output System (BIOS), or the third party application software to conserve power usage for these portable computers.
As more and more highly functional software packages were developed, desktop computer users experienced increased performance from the introductions of higher computational CPUs, increased memory, and faster high performance disk drives. Unfortunately, portable computers continued to run only on A/C power or with large and heavy batteries. In trying to keep up with the performance requirements of the desk top computers, and the new software, expensive components were used to cut the power requirements. Even so, the heavy batteries still did not run very long. This meant users of portable computers has to settle for A/C operation or very short battery operation to have the performance that was expected from the third party software.
Portable computer designers stepped the performance down to 8088- and 8086-type processors to reduce the power consumption. The supporting circuits and CPU took less power to run and therefore, lighter batteries could be used. Unfortunately, the new software requiring 80286-type instructions, that did not exist in the older slower 8088/8086 CPUs, did not run. In an attempt to design a portable computer that could conserve power, thereby yielding longer battery operation, smaller units, and less weight, some portable computer designers proceeded to reduce power consumption of a portable computer while a user is not using the computer. For example, designers obtain a reduction in power usage by slowing or stopping the disk drive after some predetermined period of inactivity; if the disk drive is not being used, the disk drive is turned off, or simply placed into a standby mode. When the user is ready to use the disk, the operator must wait until the disk drive spins up and the computer system is ready again for full performance before the operator may proceed with the operation.
Other portable computer designers conserve power by turning the computer display off when the keyboard is not being used. However, in normal operation the computer is using full power. In other words, power conservation by this method is practical only when the user is not using the components of the system. It is very likely, however, that the user will turn the computer off when not in use. Nevertheless, substantial power conservation while the operator is using the computer for meaningful work is needed. When the operator uses the computer, full operation of all components is required. During the intervals while the operator is not using the computer, however, the computer could be turned off or slowed down to conserve power consumption. It is critical to maintaining performance to determine when to slow the computer down or turn it off without disrupting the user""s work, upsetting the third party software, or confusing the operating system, until operation is needed.
Furthermore, although a user can wait for the disk to spin up as described above, application software packages cannot wait for the CPU to xe2x80x9cspin upxe2x80x9d and get ready. The CPU must be ready when the application program needs to compute. Switching to full operation must be completed quickly and without the application program being affected. This immediate transition must be transparent to the user as well as to the application currently active. Delays cause user operational problems in response time and software compatibility, as well as general failure by the computer to accurately execute a required program.
Other attempts at power conservation for portable computers include providing a xe2x80x9cShut Downxe2x80x9d or xe2x80x9cStandby Modexe2x80x9d of operation. The problem, again, is that the computer is not usable by the operator during this period. The operator could just as well turned off the power switch of the unit to save power. This type of power conservation only allows the portable computer to xe2x80x9cshut downxe2x80x9d and thereby save power if the operator forgets to turn off the power switch, or walks away from the computer for the programmed length of time. The advantage of this type of power conservation over just turning the power switch off/on is a much quicker return to full operation. However, this method of power conservation is still not real-time, intelligent power conservation while the computer is on and processing data which does not disturb the operating system, BIOS, and any third party application programs currently running on the computer.
Some attempt to meet this need was made by VLSI vendors in providing circuits that either turned off the clocks to the CPU when the user was not typing on the keyboard or woke up the computer on demand when a keystroke occurred. Either of these approaches reduce power but the computer is dead (unusable) during this period. Background operations such as updating the system clock, communications, print spooling, and other like operations cannot be performed. Some existing portable computers employ these circuits. After a programmed period of no activity, the computer turns itself off. The operator must turn the machine on again but does not have to reboot the operating system and application program. The advantage of this circuitry is like the existing xe2x80x9cshut downxe2x80x9d operations, a quick return to full operation without restarting the computer. Nevertheless, this method only reduces power consumption when the user walks away from the machine and does not actually extend the operational like of the battery charge.
Thermal over-heating of CPUs and other related devices is another problem yet to be addressed by portable computer manufacturers. CPUs are designed to operate within specific temperature ranges (varies depending on CPU type, manufacturer, quality, etc). CPU performance and speed degenerates when the limits of the operation temperature ranges are exceeded, especially the upper temperature range. This problem is particularly acute with CPUs manufactured using CMOS technology where temperatures above the upper temperature range result in reduced CPU performance and speed. Existing power saving techniques save power but do not measure and intelligently control CPU and/or related device temperature.
In view of the above problems associated with the related art, it is an object of the present invention to provide an apparatus and method for real-time conservation of power and thermal management for computer systems without any real-time performance degradation, such conservation of power and thermal management remaining transparent to the user.
Another object of the present invention is to provide an apparatus and method for predicting CPU activity and temperature levels and using the predictions for automatic power conservation and temperature control.
Yet another object of the present invention is to provide an apparatus and method which allows user modification of automatic activity and temperature level predictions and using the modified predictions for automatic power conservation and temperature control.
A further object of the present invention is to provide an apparatus and method for real-time reduction and restoration of clock speeds thereby returning the CPU to full processing rate from a period of inactivity which is transparent to software programs.
These objects are accomplished in a preferred embodiment of the present invention by an apparatus and method which determine whether a CPU may rest (including any PCI bus coupled to the CPU) based upon CPU activity and temperature levels and activates a hardware selector based upon that determination. If the CPU may rest, or sleep, the hardware selector applies oscillations at a sleep clock level; if the CPU is to be active, the hardware selector applies oscillations at a high speed clock level.
The present invention examines the state of CPU activity and temperature, as well as the activity of both the operator and any application software currently active. This sampling of activity and temperature is performed real-time, adjusting the performance level of the computer to manage power conservation, CPU temperature and computer power. These adjustments are accomplished within the CPU cycles and do no affect the user""s perception of performance.
Thus, when the operator for the third party software of the operating system/BIOS is not using the computer, the present invention will effect a quick turn off or slow down of the CPU until needed, thereby reducing the power consumption and CPU temperature, and will promptly restore full CPU operation when needed without affecting perceived performance. This switching back into full operation from the xe2x80x9cslow downxe2x80x9d mode occurs without the user having to request it and without any delay in the operation of the computer while waiting for the computer to return to a xe2x80x9creadyxe2x80x9d state.